package dog;

/**
 * 设定属性包括：品种，年龄，性别，名字；方法包括：叫，跑。
 *
 * 1)设置属性的私有访问权限，通过公有的getter和setter方法实现对属性的访问
 *
 * 2) 限定性别只能有“雌性”和“雄性”，如果无效输入进行提示，默认设置“雄性”。
 *
 * 3) 设置构造函数实现对属性赋值
 *
 * 4) 叫和跑的方法，描述不同的行为方式。
 **/
public class Dog {
    private String variety;
    private String name;
    private int age;
    private String sex;

    public String cry(){
        return "叫";
    }

    String run(){
        return "跑";
    }

    public void display(){
        System.out.println("品种："+getVariety()+"\n名字："+getName()+"\n年龄："+getAge()+"\n性别："+getSex());
    }

    public Dog(final String variety, final String name, final int age, final String sex) {
        setVariety(variety);
        setName(name);
        setAge(age);
        setSex(sex);
    }

    public String getVariety() {
        return this.variety;
    }

    public void setVariety(final String variety) {
        this.variety = variety;
    }

    public String getName() {
        return this.name;
    }

    public void setName(final String name) {
        this.name = name;
    }

    public int getAge() {
        return this.age;
    }

    public void setAge(final int age) {
        this.age = age;
    }

    public String getSex() {
        return this.sex;
    }

    public void setSex(final String sex) {
        if (!"雄".equals(sex)&&!"雌".equals(sex)){
            this.sex = "雄性";
        }
        else{
            this.sex = sex;
        }
    }
}
